#ifndef __MYSTDIO_H__
#define __MYSTDIO_H__

#define SIZE 4096//4KB
#define UMASK 0666//这里我们默认权限就是0666，但其实还要与umask按位与得到真正的权限

#define FLUSH_NONE 1
#define FLUSH_LINE 2
#define FLUSH_ALL 4

#define FORCE 1
#define NORMAL 2


typedef struct MY_IO_FILE
{
    int fileno;//文件描述符
    int flag;//打开文件的方式，比如w，a，r
    char outbuffer[SIZE];//缓冲区
    int curr;//缓冲区字符串末尾的位置
    int cap;//缓冲区的容量大小
}MYFILE;


MYFILE* my_fopen(const char* filename, const char* mode);
void my_fclose(MYFILE* fp);
int my_fwrite(const char* ptr, int size, int count, MYFILE* fp);
void my_fflush(MYFILE* fp);


#endif
